/*
 * IRoleService.java
 *
 * Copyright 2012 the original author or authors(ninglong).
 *
 * Licensed under the web-geek, Version 1.0 (the "License");
 *
 */
package org.geek.app.role.service;

import java.util.List;

import org.geek.core.bean.ExtTree;
import org.geek.core.mybatis.domain.Criteria;
import org.geek.core.mybatis.domain.Role;

/**
 * <p></p>
 * @author ninglong bhd2973@qq.com
 * @version V1.0
 */
public interface IRoleService {
	
	/**
	 * @param criteria 查询条件
	 * @return 根据条件得到记录数
	 */
	int countRoleByCriteria(Criteria criteria);
	
	/**
	 * @param criteria 查询条件
	 * @return 符合条件的记录
	 */
	List<Role> getRoleByCriteria(Criteria criteria);
	
	/** 
	 * 当userId=0时,查询所有角色,否则为当前用户拥有的角色
	 * @param userId
	 * @return 带权限角色树    
	 */
	List<ExtTree> getRoles2Tree(int userId);
	
	/**
	 * @param role 要保存的角色
	 * @return >0 成功
	 */
	int addRole(Role role);
	
	/**
	 * @param role 要保存的角色
	 * @return >0 成功
	 */
	int modRole(Role role);
	
	/**
	 * @param roleId 要删除的角色Id
	 * @return >0 成功
	 */
	int delRoleByRoleId(int roleId);
	
	/** 授权操作
	 * @param roleId 角色Id
	 * @param moduleId 模块Id
	 * @param actionIds 操作Ids
	 * @return
	 */
	int saveAuth(int roleId,int moduleId,String [] actionIds);
}